А.Н. Аверкин, К. В. Сулин
Московская государственная академия приборостроения и информатики
Построение нечеткого регулятора скорости электромотора на базе параметрических логик
The application has the aim to control the rotation speed of a small DC motor with permanent magnet. Aim of the controller is to force motor to reach any rotation speed represented by a reference voltage value.
Разработанное программно –
алгоритмическое обеспечение является моделью нечеткого контроллера , осуществляющего управление скоростью вращения ротора электрического мотора постоянного тока . Разрабатываемый алгоритм функционирования нечеткого регулятора основан на многозначных нечетких логиках , позволяющих настроить работу регулятора на логику пользователя или близкую к ней .
Программное средство имитирует работу нечеткого контроллера с целью разработки и исследования оптимальных алгоритмов управления в реальном масштабе времени , позволяя при этом пользователю "на ходу" изменять логику его работы .
Ход работы регулятора отображается на экране монитора путем вывода графика скорости вращения ротора мотора и сравнения реальной скорости с заданной .
Результаты моделирования сохраняются в файлах с тем , чтобы пользователь мог затем сравнить результаты работы регулятора с применением различных логик .
При разработке самого нечеткого регулятора использовалась интегриро -
ванная среда Software Development Tool for W.A.R.P. фирмы SGS – THOMSON MICROELECTRONICS .
Объектом управления системы нечеткого контроля является электромотор постоянного тока со следующими параметрами :- средняя скорость – 3800 ± 10 %
оборотов в минуту
На рис.1 приведена замкнутая модель работы системы. Задача нечеткого регулятора заключается в
том , чтобы заставить ротор мотора вращаться со скоростью, пропорциональной заданному значению напряжения .
Первая входная переменная представлена разницей между заданным напряжением и реальным напряжением на выходе :
err (t) = rif (t) – V
out (t) [1], где rif – напряжение, пропорциональное заданной скорости вмомент времени t ;
V
out – реальное напряжение на выходе в момент времени t .Приняв во внимание динамику системы , второй входной переменной будет являться производная от ошибки derr (физический смысл – угловое ускорение ротора) .
В системе реализован замкнутый цикл управления . Входной параметр V
in(K) формируется путем суммирования предыдущего входного значения Vin(K-1) и значения DVin (K) , формируемого регулятором .V
in ( K ) = Vin ( K – 1 ) + DVin (K) [2].
Рис. 1 Система нечеткого управления электромотором .
Выходная переменная формируется в зависимости от входных с использованием следующих продукционных правил :
IF err IS p AND Derr IS p THEN dv IS pp
IF err IS p AND Derr IS z THEN dv IS pz
IF err IS p AND Derr IS n THEN dv IS pn
IF err IS z AND Derr IS p THEN dv IS zp
IF err IS z AND Derr IS z THEN dv IS zz
IF err IS z AND Derr IS n THEN dv IS zn
IF err IS n AND Derr IS p THEN dv IS np
IF err IS n AND Derr IS z THEN dv IS nz
IF err IS n AND Derr IS n THEN dv IS nn
Принцип работы регулятора очень прост . Приведем пример : предположим , что переменная err отрицательна , т. е. ротор вращается со скоростью , большей , чем заданная (err = rif – Vout) , а производная Derr положительна , т. е. угловое ускорение положительно , следовательно , ротор еще и ускоряется . Чтобы приблизить скорость ротора к заданной , контроллер резко уменьшит скорость, т. е., в соответствии с седьмым правилом значением выходной переменной dv будет np .
Соответственно , если err = 0 и derr = 0 то это означает , что разницы между рекомендуемым и реальным значениями угловой скорости нет и ротор не замедляется и не ускоряется , следовательно изменять скорость не нужно , dv = zz ( пятое правило) .
ПО модели состоит из следующих
основных блоков :
- Инсталлятор . С его помощью осуществляется установка программного обеспечения на компьютер . Программа установки сделана в соответствии со стандартами Windows и поэтому описывать этот блок подробнее нет необходимости .
-Блок задания параметров модели . Через форму этого блока пользователь осуществляет ввод четырех параметров системы : три значения рекомендуемой скорости вращения ротора для каждого пятисекундного интервала работы модели и параметр логики Франка . Заполняется матрица rifbuf , состоящая из трех значений , которые затем передаются блокам визуализации и нечеткого вывода .
-Блок настройки на логику пользователя . Состоит из восьми кнопок с помощью которых пользователь может изменять значения переменных T_change и S_change , которые определяют т-нормами и s-нормами каких логик предполагается воспользоваться .
-Блок нечеткого вывода . Блок фактически представлен библиотекой функций, поставляемых фирмой SGS – THOMPSON вместе с W.A.R.P. – S.D.T. для эмуляции работы нечеткого регулятора WARP в среде пользовательских программ на языке С/С++. Основные функции - int InitWARP(char *,int,int) и int PerformWARP(double[],double[]). Функция InitWARP загружает в память базу данных, содержащуюся в файле с расширением “.cda”, и присваивает значения структурам, используемым в функции PerformWARP. Первым параметром функции InitWARP является указатель на строку, содержащую имя файла с расширением “.cda” и его полный путь для поиска. Второй параметр функции InitWARP - число входов нечеткого регулятора (или число входных переменных). Третий параметр - число выходов (или число выходных переменны). Функция InitWARP возвращает 1, если функция успешно загрузила свои структуры, и 0 - в противном случае. Одной из причин, приводящих к неуспешному выполнению функции, является неправильно заданный путь или имя файла с расширением “.cda”. Функция PerformWARP вычисляет значения выходных переменных в соответствии с значениями входных переменных. Первый параметр этой функции - одномерный массив действительных чисел с двойной точностью, содержащий значения входных переменных. Второй параметр - массив выходных переменных, вычисляемый этой функцией. Функция PerformWARP возвращает “1” - нормальное вычисление; “2” - если некоторое значение входной переменной выходит за область их определения (в этом случае вычисления прерываются); “3” - сбой аппаратного обеспечения.
-Блок визуализации результатов моделирования . Осуществляет построение графика зависимости скорости вращения ротора от времени .
Реализовано это следующим образом : по прерыванию таймера (18.2 раза в секунду) вызывается функция PerformWARP и ее выходная переменная отображается в заданном масштабе на графике в окне формы . Весь временной период эмуляции работы системы нечеткого контроля разделен на три интервала , в которых заданные значения скорости вращения ротора различны .
-Блок сохранения результатов . Представляет собой стандартный диалог Windows сохранения файла под заданным именем . При этом в файл записываются заданные пользователем значения скоростей и , далее , входные и выходные параметры функции PerformWARP столько раз , сколько она была вызвана за один сеанс моделирования .
На основе проведенных экспериментов можно
сделать вывод о том , что использование различных
параметрических нечетких логик , на которые производится настройка
регулятора , а так же возможность их
комбинирования позволяет улучшить качество работы систем
нечеткого управления , применяемых в различных областях
человеческой деятельности .
Литература : 1. Прикладные нечеткие системы : Пер. с япон./ К.
Асаи, Д. Ватада, С. Иваи и др.; под редакцией Т. Тэрано, К. Асаи, М. Сугэно. – М.: Мир,
1993.
Site of Information
Technologies Designed by inftech@webservis.ru. |
|